This application relates to I/O scanners associated with industrial controllers and more particularly to a method of updating different I/O modules at different rates.
Industrial controllers such as those described in U.S. Pat. Nos. 3,810,118; 3,942,158, 4,165,534 and 4,442,504 are typically connected to industrial equipment such as assembly lines or machine tools to operate such processes or equipment in accordance with a stored program. In industrial controllers, such as those disclosed in the above cited patents, the stored program includes instructions which, when executed, examine the condition of selected inputs to the controller from sensing devices on the controlled equipment and energize or de-energize selected outputs from the controller to operate devices on the controlled equipment. Inputs to the controller may be discrete binary signals such as those from switches which may detect limits of process variables such as motion, temperature, time, or other quantities, or the inputs may be analog measures of the process variables themselves, which are generally then converted to digital binary form for processing.
Likewise, the outputs of the controller may be either binary outputs as implemented by mechanical or solid-state relays, or analog outputs produced by means of a digital to analog converter.
Inputs and outputs to the controller are processed through I/O modules which may be remotely located from other portions of the industrial controller and connected by means of a communications "link". For discrete inputs and outputs, such as those from limit switches or to relay coils, the controller transmits or receives a single binary bit of data which defines the status of a single discrete input or output at the I/O module. Typically, the signals for a number of such discrete inputs and outputs are grouped in packets for transmission on the link.
Communication with other modules such as an analog-to-digital ("A/D") or digital-to-analog ("D/A") converters may require the transmission or reception of several binary words of data. Such multiple bit transfers are termed block transfers, referring to the block of data that is transmitted through the link and such I/O modules are termed "block transfer modules".
To update all of the I/O modules, the controller employs a circuit called an I/O scanner which couples both types of I/O modules: discrete modules and block transfer modules to the controller. At any given time, the I/O scanner may update all of the discrete modules in an adapter or a single block transfer module within an adapter. An adapter of discrete modules or a block transfer module will each be termed an I/O "unit" reflecting this communication protocol.
The I/O scanner, periodically reads each I/O unit and records its status in an input image table contained in the scanner's memory and copied to the controller's memory. Conversely, the I/O scanner periodically writes part of the output image table portion of its memory to the remotely located output modules. The scanner's I/O image table reflects the current state of the I/O modules, and its purpose is to permit the industrial controller to rapidly access the input and output data without the need for communicating over the I/O link. Since the controller performs its logical operations based on the state of this I/O image table, it is important that the I/O image table accurately reflect the most current state of the I/O units.
The period of time between the repeated scanning of a single I/O unit in consecutive I/O scanner cycles is termed the "update rate", whereas the number of I/O units updated within a given time period is termed the "scan rate". The I/O scan rate is determined primarily by the speed of the I/O scanning hardware and the speed of the communications link whereas the update rate is also a function of how many I/O units are on the link.
A high update rate is necessary for I/O units connected with process variables that may change rapidly. For example, a safety limit switch on a high speed press might require a high update rate: the switch may change state quickly at any time and requires frequent monitoring. On the other hand, an I/O unit monitoring the height of liquid in a tank from an inlet that is small comparison to the tank, does not require constant monitoring. The liquid height changes slowly and predictably. The distinction between low and high update rates is both one of the speed of change of the process variable and predictability of change of the process variable. Henceforth, the term "high information bandwidth" will be used to refer to process variables, either inputs or outputs, that require high update rates.
Generally the update rate for all I/O units is the same and is equal to the period of the I/O scanning cycle, that is, the time required for the I/O scanner to update each I/O unit once. Therefore, the minimum scan rate required of a typical I/O scanner is determined by the update rate of the single I/O unit connected to the highest information bandwidth process variable times the number of I/O units.
The product of the minimum necessary update rate and the number of scanned I/O units will be termed the "scanner service limit". For complex industrial processes, the number of I/O units required can be large and one or more of the variables may have a high information bandwidth.
Accordingly, considerable effort has been devoted to increasing the scanner service limit. Primarily, efforts to improve the scanner service limit have focussed on increasing scan rates through the use of high speed links and faster I/O scanner hardware and protocols. For example, U.S. Pat. No. 4,404,651 entitled "Programmable Controller For Using Coded I/O Technique" issued Sept. 13, 1983, and U.S. Pat. No. 4,442,504 entitled "Modular Programmable Controller" issued Apr. 10, 1984, describe methods for increasing scan rates by selectively transmitting only data that has changed since the last scan.
A given high information bandwidth variable in a complex industrial process may require updating at no less than a given interval. With present scanners, however, the update rate is difficult to calculate and cannot be guaranteed. The addition of I/O units to a link, for example, will generally decrease the update rate. An increased number of I/O "reads" or "writes" could also slow the update rate. Prior I/O scanners do not have the ability to provide information to the industrial controller which indicates the update rate of a given scanned I/O unit.